package com.youan.serve.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.youan.pangu.security.bean.LoginInfor;
import com.youan.serve.controller.swagger.NoticeUserControllerSwagger;
import com.youan.serve.service.INoticeUserService;
import com.youan.serve.dao.domain.NoticeUser;
import com.youan.pangu.base.util.PrimaryKeyUtil;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
import org.springframework.beans.factory.annotation.Autowired;




import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author auto_code
 * @since 2020-03-13
 */
@Controller
@RequestMapping("/notice-user")
public class NoticeUserController implements NoticeUserControllerSwagger{
    @Autowired
    private INoticeUserService noticeUserService;

    @Override
    @PostMapping("/noticeUser")
    public NoticeUser addNoticeUser(NoticeUser noticeUser){
        noticeUser.setUserNoticeId(PrimaryKeyUtil.getCommonId());
        noticeUserService.save(noticeUser);
        return noticeUser;
    }

    @Override
    @DeleteMapping("/noticeUser/{userNoticeId}")
    public void deleteNoticeUserByUserNoticeId(@PathVariable String userNoticeId){
        noticeUserService.removeById(userNoticeId);
    }

    @Override
    @GetMapping("/noticeUser/{userNoticeId}")
    public NoticeUser selectNoticeUserByUserNoticeId(@PathVariable String userNoticeId){
        return noticeUserService.getById(userNoticeId);
    }

    @Override
    @PutMapping("/noticeUser")
        public NoticeUser updateNoticeUser(NoticeUser noticeUser){
        noticeUserService.updateById(noticeUser);
        return noticeUser;
    }

    @PutMapping("/updateByNoticeIdAndUser")
    public NoticeUser updateNoticeUser(String noticeId, LoginInfor loginInfor){
        List<NoticeUser> noticeUserList = noticeUserService.list(new LambdaQueryWrapper<NoticeUser>().eq(NoticeUser::getUserId, loginInfor.getUserId()).eq(NoticeUser::getNoticeId, noticeId));
        if(noticeUserList.size()==1){
            NoticeUser noticeUser = noticeUserList.get(0);
            noticeUser.setIsRead("1");
            noticeUserService.updateById(noticeUser);
        }
        return null;
    }

    @Override
    @GetMapping("/noticeUsers")
        public List<NoticeUser> selectAllNoticeUser(){
        return noticeUserService.list();
    }
}

